package com.xhj.mybatis.session;

/**
 * ResultContext
 *
 * @author XJks
 * @description ResultContext 接口用于在 MyBatis 查询结果处理过程中，传递每一条结果及相关状态信息。TODO:该类与单结果集中的单条数据一一对应。
 */
public interface ResultContext<T> {

    /**
     * 获取当前处理的结果对象。
     *
     * @return 当前的结果对象（类型为 T）
     */
    T getResultObject();

    /**
     * 获取当前已经处理的结果数量（从1开始计数）。
     *
     * @return 已处理结果的数量
     */
    int getResultCount();

    /**
     * 判断结果处理是否已经被停止。
     *
     * @return 如果已停止返回 true，否则返回 false
     */
    boolean isStopped();

    /**
     * 停止结果处理，调用后 isStopped() 会返回 true。
     */
    void stop();

}